package com.zp.business.entity.clinicOrder;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.satoken.utils.LoginHelper;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 处置治疗对象 outp_treat_rec
 *
 * @author zhang peng
 * @ date 2024-01-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("outp_treat_rec")
public class OutpTreatRec extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private String id;

    /**
     * 就诊记录ID
     */
    private String clinicId;

    /**
     * 门诊收费id
     */
    private String clinicOrdersId;

    /**
     * 病人信息Id
     */
    private String patientId;

    /**
     * 住院/门诊 字典：clinic_or_visit
     */
    private String inoroutFlag;

    /**
     * 确认标志
     */
    private String confirmFlag;

    /**
     * 收费标志
     */
    private String chargeFlag;

    /**
     * 库存ID
     */
    private String stockId;

    /**
     * 组号
     */
    private String groupNo;

    /**
     * 处置治疗单号
     */
    private String applyNo;

    /**
     * 执行科室
     */
    private String implementDept;

    /**
     * 开单科室
     */
    private String applyUser;

    /**
     * 开单人
     */
    private String applyDept;

    /**
     * 频次
     */
    private String performFreq;

    /**
     * 项目名称
     */
    private String itemName;

    /**
     * 数量
     */
    private Integer num;

    /**
     * 总价格
     */
    private BigDecimal sumPrice;

    /**
     * 机构ID
     */
    private String orgId;

    /**
     * 标志
     */
//    @TableLogic
    private String delFlag;

    public void initEntity() {
        this.delFlag = "0";
    }

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 是否申请
     */
    private String isApply;

    /**
     * 是否体检
     */
    private String isPhy;

    /**
     * 诊疗项目ID
     */
    private String clinicItemId;

    /**
     * 项目类别
     */
    private String itemClass;

    /**
     * 扩展（单位）用于材料
     */
    private String unitsStr;

    /**
     * 扩展（厂商）用于材料
     */
    private String supplierName;

    /**
     * 扩展（规格）用于材料
     */
    private String packageSpec;

    /**
     * 优惠系数
     */
    private BigDecimal coefficient;

    /**
     * 原价
     */
    private BigDecimal price;

    /**
     * 进价
     */
    private BigDecimal tradePrice;

    /**
     * 网络价格
     */
    private BigDecimal networkPrice;

    /**
     * 是否门诊录费
     */
    private String isClinicFee;

    /**
     * 是否暂存Y是,N否
     */
    private String mark;

    /**
     * 天数
     */
    private Integer abidance;


    /**
     * 处方、检查、检验、治疗项目明细表id
     */
    private String applyItemId;

    private String applyDeptName;
    private String applyUserName;
    private String implementUser;
    private String implementUserName;
    private String implementDeptName;

    /**
     * 熔断后异常信息
     */
    @TableField(exist = false)
    private String exceptionCode;

    private String itemCode;

    /**
     * 修改人、修改时间信息信息
     */
    public void updateInfo() {
        setUpdateBy(LoginHelper.getLoginUser().getNickName());
        setUpdateTime(new Date());
    }
}
